Graphical user interface, system and method for managing contacts within an online stationery system

ABSTRACT

A graphical user interface, system and method are described for managing a contacts database within an online stationery service. A presentation logic receives contacts to whom personalized stationery will be mailed and generates a graphical user interface comprising: a first region for displaying the contacts received from the stationery service contacts manager, the contacts within the contacts selectable via a user input device, a second region comprising a series of data field for entering a new contact via a user input device, and a third region displaying the contacts to whom the online stationery service will mail stationery directly on behalf of the user, the contacts within the third region selected from the first region or entered in the second region. A print module generates a print job to print the personalized stationery and envelopes containing the address information for the user-selected contacts.

CLAIM TO PRIORITY

This application is a continuation application and claims priority toco-pending U.S. patent application Ser. No. 12/638,844, filed Dec. 15,2009, titled “Graphical user interface, system and method for managingcontacts within an online stationery system” filed by the sameinventors, the disclosure of which is incorporated herein by reference.

BACKGROUND

1. Field of the Invention

This invention relates generally to the field of network data processingsystems. More particularly, the invention relates to an improvedgraphical user interface, architecture and method for managing contactswithin an online stationery system.

2. Description of the Related Art

Web-based systems for designing stationery such as wedding invitations,birth announcements, thank you cards, birthday party invitations, etc,are currently available over the Internet. These services allow a userto enter a personalized message on a stationery template via a Webbrowser. The service then prints the stationery with the personalizedmessage and mails the printed stationery and envelopes to the end user.The end user then mails the stationery to one or more recipients.

Some online stationery services will also mail stationery directly torecipients on behalf of the end user. In order to do so, the user mustprovide the stationery service with the names and addresses of therecipients. FIGS. 1 a-c illustrate screenshots from one particularstationery Website, which provides options for manually entering a newname/address of a recipient 100 or importing a group of addresses froman Excel spreadsheet 101. As illustrated in FIG. 1 b, upon selecting anExcel spreadsheet from the user's local hard drive, the user is promptedwith a plurality of drop-down menus 102 to identify the data fields forthe address lines. Once the import is complete, a list of recipients 103is provided as shown in FIG. 1 c. The end user is permitted to deletenames from the list (by selecting a trash icon) but no other mechanismis provided for editing or otherwise managing the list of recipients onthe online stationery service.

Consequently, what is needed is an improved graphical user interfacesystem and method for importing and managing contacts within an onlinestationery service.

SUMMARY

A graphical user interface, system and method are described for managinga contacts database within an online stationery service. For example,one embodiment of the invention comprises a system implemented within anonline stationery service, the system comprising at least one memory forstoring program code and at least one processor for processing theprogram code to execute: a stationery service contacts manager to managea set of contacts data within a stationery service contacts database inresponse to user input; a stationery personalization engine providing anend user with a set of selectable stationery templates, the stationerypersonalization engine receiving an indication that an end user hasselected a particular one of the stationery templates, and generatingpersonalized stationery with the selected template based on user input;presentation logic for generating a graphical user interface (GUI), thepresentation logic communicatively coupled to the stationery servicecontacts manager to receive a listing of contacts from the stationeryservice contacts manager to whom the personalized stationery will bemailed, the graphical user interface comprising: a first region fordisplaying the listing of contacts received from the stationery servicecontacts manager, the contacts within the listing of contacts selectablevia a user input device; a second region comprising a series of datafield for entering a new contact via a user input device; a third regiondisplaying a list of contacts to whom the online stationery service willmail stationery directly on behalf of the end user, the contacts withinthe third region selected from the first region or entered in the secondregion; and a print module to generate a print job to print thepersonalized stationery and envelopes containing the address informationfor the user-selected contacts.

BRIEF DESCRIPTION OF THE DRAWINGS

A better understanding of the present invention can be obtained from thefollowing detailed description in conjunction with the followingdrawings, in which:

FIGS. 1 a-c illustrates a prior art stationery service in whichstationery recipients are identified.

FIG. 2 illustrates a system architecture according to one embodiment ofthe invention.

FIG. 3 illustrates a computer-implemented method according to oneembodiment of the invention.

FIG. 4 illustrates a graphical user interface (GUI) for importingvarious different online and offline contact databases.

FIG. 5 illustrates one embodiment of a GUI window for importing contactsfrom different contact groups.

FIG. 6 illustrates a graphical user interface for associating importedcontacts with data fields.

FIG. 7 illustrates one embodiment of the invention for merging existingand imported contacts.

FIG. 8 illustrates one embodiment of an address book for viewing andmanaging a contacts database.

FIG. 9 illustrates households comprised of multiple contacts accordingto one embodiment of the invention.

FIG. 10 illustrates one embodiment of a GUI for incorporating contactsinto households.

FIG. 11 illustrates another embodiment of a GUI for incorporatingcontacts into households and/or merging contacts.

FIG. 12 illustrates a window displaying household details according toone embodiment of the invention.

FIG. 13 illustrates a window displaying contact details according to oneembodiment of the invention.

FIG. 14 illustrates windows for confirming mailing addresses accordingto one embodiment of the invention.

FIG. 15 illustrates GUI features employed in one embodiment of theinvention for sending address request email messages.

FIGS. 16 a-b illustrate exemplary address confirmation requeststransmitted to contacts in one embodiment of the invention.

FIG. 17 illustrates reminder emails transmitted to an end user accordingto one embodiment of the invention.

FIGS. 18 a-b illustrate GUI features employed in one embodiment of theinvention for selecting new addresses and addresses from within acontacts list.

FIG. 19 illustrates GUI features employed in one embodiment of theinvention for selecting options for directly mailing stationery tocontacts and for mailing stationery to the end user of the stationeryservice.

FIG. 20 a-c illustrate GUI features for selecting default and custommessages to be printed on stationery and mailed contacts within anaddress book.

FIG. 21 illustrates a method according to one embodiment of theinvention for processing a stationery order.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

Described below is a system and method for importing and managingcontacts in an online stationery system. Throughout the description, forthe purposes of explanation, numerous specific details are set forth inorder to provide a thorough understanding of the present invention. Itwill be apparent, however, to one skilled in the art that the presentinvention may be practiced without some of these specific details. Inother instances, well-known structures and devices are shown in blockdiagram form to avoid obscuring the underlying principles of the presentinvention.

It should be noted that the term “stationery” is used herein to refer tocards, invitations (e.g., wedding, birthday invitations, etc), and anyother form of written communication and/or images printed on a medium(e.g., paper, fabric, etc) using any form of printing device.

FIG. 2 illustrates one embodiment of a system architecture for importingand managing contacts within an online stationery service 200 and FIG. 3illustrates a corresponding method. One embodiment of the onlinestationery service 200 merges contact data from multiple differentsources and then converts the contact data into a format which isoptimized for online stationery mailing functions. A brief overview ofthe method illustrated in FIG. 3 will now be provided within the contextof the architecture shown in FIG. 2. It should be noted, however, thatthe underlying principles of the invention are not limited to thespecific architecture shown in FIG. 2.

At 301, a contacts import module 209 manages the importation of contactsfrom various local and/or online contact database identified by the enduser. In the illustrated embodiment, the contacts import module 209comprises a format conversion module 204 and a conflict detection andresolution module 205. As shown in FIG. 2, the format conversion module204 reads contacts data from online contacts databases 201-202; localcontacts databases 203 (i.e., “local” to the user's client computer240); and/or existing contacts 211 already stored on the onlinestationery service 200 (e.g., the end user may have already establishedan account on the online stationery service 200 to send stationery andmay have entered information for a set of contacts 211). If theonline/local contact formats are supported, determined at 302, then at303, the format conversion module converts the contacts to a formatoptimized for use on an online stationery service 200. To perform theformat conversion, the format conversion module 204 parses the contactdata in source data structure (e.g., the CSV file, vCard file, etc),extracts the data, and assigns the data to appropriate data fields inthe new data structure. Various well known techniques for convertingdata from one format to another may be employed by the format conversionmodule 204. Once converted (and following conflict detection describedbelow), the contacts data is stored in its new format within a contactsdatabase 210 on the stationery service. Various features associated withthis new data format are described in detail below (see, e.g., FIGS.12-20 c and associated text).

At 304, a conflict detection and resolution module 205 merges the localand/or online contacts with existing contacts 211 already stored on theonline stationery service 200 and detects any conflicts which may resultfrom the merge operation. A conflict may result if one or more contactsbeing imported are already stored within the existing contacts database211. In such a case, the conflict detection and resolution module 205resolves the conflicts at 305 using a set of conflict resolution rules(described below). Once all conflicts have been resolved, the data ispersisted within the contacts database 210 and made accessible to endusers via the stationery service contacts manager 212. In oneembodiment, the contacts database 210 is implemented using mySQL.However, various different database formats may be employed while stillcomplying with the underlying principles of the invention (e.g.,Microsoft SQL, IBM SQL, etc).

At 307, the user identifies one or more “households” within thestationery service contacts database 210. As described below, householdsare specialized groups of contacts who live at the same address. Theconcept of a “household” is a particularly useful abstraction for anonline stationery service 200 which mails stationery on behalf of auser.

As illustrated in FIG. 2, in one embodiment, all operations to thestationery service contacts database 210 occur through the stationeryservice contacts manager 212. That is, the stationery service contactsdatabase 210 is used for persistent storage of contacts data containingthe features described herein and the stationery service contactsmanager 212 is the application-layer program code used to performoperations on the stationery service contacts database 210 as describedbelow. The presentation and session management logic 206 comprises theprogram code for maintaining user sessions and for dynamicallygenerating Web pages containing (among other things) the graphical userinterface (GUI) features for manipulating contacts data as illustratedherein.

Returning to the method of FIG. 3, at 307, the user selects andpersonalizes a stationery design. In one embodiment, this isaccomplished with a stationery personalization engine 220 such as thatdescribed in co-pending application entitled SYSTEM AND METHOD FORDESIGNING AND GENERATING ONLINE STATIONERY, Ser. No. 12/188,721, filedAug. 8, 2008, which is assigned to the assignee of the presentapplication and which is incorporated herein by reference. In oneembodiment, the stationery personalization engine 220 performs all ofthe functions described in the co-pending application as well as theadditional functions described herein (e.g., selectingcontacts/households for a stationery mailing via the stationery servicecontacts manager 212, selecting between a default message or a personalmessage for the contacts/households, etc).

At 308, the end user creates a default message to be used for astationery mailing and, at 309, the contacts and/or households for themailing are identified by the end user. If the user wishes to include apersonalized message in lieu of the default message for one or morecontacts/households, determined at 310, then the user selects acontact/household at 311 and enters the personalized message for thecontact/household at 312. If any additional personalized messages are tobe included, determined at 313, then steps 311 and 312 are repeateduntil all personalized messages have been entered.

At 314, all of the information related to the stationery order,including the selected stationery design, default messages, personalizedmessages and associated contacts and households are formatted forprinting by a print module 250 which generates a print job 255. Theformatting may include converting the stationery data mentioned aboveinto a format usable by a particular printer. By way of example, aletter press printer may require different formatting than a digitalpress printer. In one embodiment, the specifications for the print jobare encapsulated as metadata in an Extensible Markup Language (“XML”)document and transmitted to an external print service 252. In oneembodiment, the XML document includes a hyperlink (e.g., a URL) to theformatted print job 255 on the online stationery service 200. The printservice 252 then accesses the print job by selecting the hyperlink.Regardless of how the print job is accessed, at 315, the formatted printjob 255 is transmitted to either an internal printer 251 or an externalprint service 252 (e.g., over the Internet). Once printing is complete,the online stationery service 200 or the print service 252 mails thestationery to the contacts and/or households identified by the end user.

Having provided an overview of the method set forth in FIG. 3 and thearchitecture illustrated in FIG. 2, various specific details associatedwith managing contacts, generating print jobs and mailing stationeryfrom an online stationery service 200 will now be provided. It should benoted, however, that the underlying principles of the invention are notlimited to the particular architecture shown in FIG. 2 or the particularmethod set forth in FIG. 3.

In one embodiment, the different graphical user interface (GUI) featuresdescribed herein are generated by presentation and session managementlogic 206 executed on the online stationery service. In one embodiment,various well known functional modules associated within the presentationand session management logic 206 are executed to receive input, processthe input, interact with one or more other modules shown in FIG. 2, anddynamically generate Web pages containing the results. The Web pages arethen transmitted to the user's client computer 240 and rendered on abrowser 245. The Web pages may be formatted according to the well knownHyperText Markup Language (“HTML”) or Extensible HTML (“XHTML”) formats,and may provide navigation to other Web pages via hypertext links. Oneembodiment utilizes Dynamic HTML (“DHTML”), a collection of technologiesused together to create interactive Web sites by using a combination ofa static markup language (e.g., HTML), a client-side scripting language(e.g., JavaScript), a presentation definition language (e.g., CSS), andthe Document Object Model (“DOM”).

Turning now to FIG. 4, in one embodiment, the user is prompted toidentify online and offline contacts databases via a series ofhyperlinks 401-402 (see, e.g., step 302 in FIG. 3). In the exampleshown, the three online links 401 include Facebook, Gmail and Yahoo!contacts. A set of five links 402 are provided for importing contactsfrom different types of CSV files and a set of two links 403 areprovided for importing contacts from different vCard files.

In one embodiment, when importing online address books such as thoseavailable from Facebook, Gmail and Yahoo!, the user is asked to provideauthentication data such as a user name and a password. The onlinestationery service 200 then uses the authentication data to log in tothe online service and retrieve the contacts list on behalf of the user.

FIG. 5 illustrates a graphical user interface (GUI) window generated inone embodiment of the invention following the selection of a particularcontact database 201-203. In one embodiment, the user may selectcontacts from different, predefined contact groups 501-503. In theexample shown in FIG. 5, the groups include “all contacts” 501,“colleagues” 502, and several “smart groups” 503 (described in detailbelow). A set of available contacts 505 to be imported is displayedwithin region 510. Each contact has a check box associated with it toindicate whether the contact should be included in (or excluded from)the import. In one embodiment, the default state of the check boxes is“unchecked” and the user must manually select contacts by checking thecorresponding check boxes. In addition, in one embodiment, the contactswhich correspond to contacts already stored in the user's address book211 on the online stationery service 200 are identified by the conflictdetection and resolution module 205 and highlighted (e.g., bolded inFIG. 5). In one embodiment, “matches” to existing contacts are thosecontacts which have the same name AND one of the following: same email,phone, date, OR mailing address.

Check-boxes 511 and 512 are also provided to import group names with thecontacts and to add the imported contacts to a specific group within theuser's existing address book 211. The specific group is identified via adrop-down menu containing a list of available groups. Once the set ofcontacts are selected within region 510 the user imports the contacts byselecting an import button 515.

FIG. 6 illustrates a GUI window which allows the user to review andconfirm field assignments to be used for the imported contacts data. Aplurality of “field type” drop-down menus 601 are provided to allow theuser to select the fields to be used. The corresponding values for eachcontact are displayed within a plurality of rows 602, as illustrated.

As mentioned above, a conflict detection and resolution module 205identifies existing contacts 211 which match contacts being importedfrom the various sources 201-203 and attempts to resolve any conflictswhich may exist between the data. In one embodiment, each conflict isidentified to the end user and the user is prompted to specify how toresolve the conflict. For example, FIG. 7 illustrates a Web-basedgraphical user interface presented to the user which shows the contactdata contained in the existing contacts database 701, the contact datato be imported 702, and the merged contact data which would result fromthe import 703. In one embodiment, the differences between the existingand imported data is highlighted. For example, in FIG. 7, data found inthe existing database but not the database to be imported is highlightedwith a first color (e.g., orange); and data found in the contactsdatabase to be imported but not the existing contacts database ishighlighted with a second color (e.g., green). Thus, the merged contactdata 703 is shown with some entries 712, 715 highlighted in the firstcolor and some entries 711, 713, 714 highlighted in the second color.

As shown in FIG. 7, some of the conflicting data is combined intocorresponding fields within the merged contact 703. For example, in FIG.7, the “notes” field is appended to include notes 715, 716 from both theexisting and the imported contacts. However, certain data fields cannotbe merged in this manner. For example, if the existing contact 701 has adifferent home address than the imported contact 702, then the conflictdetection and resolution module 205 must select one of the two addressesas the primary home address. In one embodiment, when a conflict of thisnature occurs, the default operation of the conflict detection andresolution module 205 is to keep the data from the existing contact 701and to append the data from the imported contact into the notes field ofthe merged contact 703. For example, in FIG. 7, the nickname (“Al”),title (“Engineer”) and company (“Tiny Prints”) are selected from theexisting contact 701 and the nickname (“DJ Albert”), title (“DJ”) andcompany (“Mr. DJ Productions”) from the imported contact 702 areappended within the notes field 717 of the merged contact 703.

In one embodiment, the user is given the option to select the existingversion 701, the imported version 702 or the merged version 703 using amouse, keyboard, and/or other cursor control device. A checkbox option720 is also provided to allow the user to apply the choice to allremaining contacts to be reviewed. If the checkbox 720 is not selected,the user will review and select each conflict individually.

FIG. 8 illustrates a graphical user interface (GUI) for viewing andmanaging contacts stored within the stationery service contacts database210 according to one embodiment of the invention. The GUI includes afirst region 810 for listing various contact groups; a second region 811for listing contacts and/or households associated with the currentlyselected group; and a third region 812 for performing operations relatedto selected contacts and/or households. As mentioned above, the groupslisted within the GUI include an “all contacts” group 801,user-specified groups 802 and one or more “smart groups” 803 which areautomatically generated by the stationery service contacts manager 212.The smart groups 803 are groups of contacts and/or households arrangedaccording to upcoming chronological events. For example, in FIG. 8, thesmart groups include a “reminders” group which includes reminders forcontacts and/or households arranged in chronological order; an “upcomingbirthdays” group comprised of contacts arranged in order of upcomingbirthdays; an “anniversaries” group comprised of contacts arranged inorder of upcoming anniversaries; and a “recent purchases” groupcomprises of contacts arranged in an order of stationery purchases madeby the end user. By way of example, when the “upcoming birthdays” groupis selected in region 810, a listing of contacts is provided in region811 in a chronological order of upcoming birthdays (e.g., with thecontact with the first upcoming birthday at the top of the list). In oneembodiment, the end user is provided with the ability to add smartgroups based on any date-based variable associated with the contactsdatabase. Other types of smart groups may include “requested addresses”containing a listing of those contacts for whom mailing addresses havebeen requested (as described below); a “recently confirmed” smart groupcontaining a listing of those contacts who have responded and confirmedtheir addresses; and a “last import” smart group comprised of thosecontacts included in the last contacts import.

Multiple contacts and/or households may be highlighted in region 811(e.g., by holding CTRL and selecting with a mouse) and processed byselecting options in region 812. For example, a drop-down menu ofavailable groups 823 allows the user to associate the highlightedcontacts with a group. An export button 821 allows the user to exportthe contacts to a file (e.g., a CSV or vCard file). A “merge intohousehold” button 820, when selected, allows the end user to create anew household comprised of the selected contacts. Upon selection of thisbutton, the end user is presented with a field for entering a newhousehold name. As illustrated in FIG. 9, once a new household iscreated, the household 901 is displayed within the second region 811 ofthe GUI along with other contacts and/or households. As illustrated, thecontacts 902 associated with the household are displayed beneath thehousehold entry 901 and indented.

As illustrated in FIG. 10, in one embodiment of the GUI, when ahousehold entry 1001 is selected from within the second region 811 ofthe GUI, contacts listed in the second region may be clicked on anddragged into a household detail region 1002 to add the contacts to thehousehold. Multiple contacts may be selected by selecting the CTRL keyand highlighting the contacts with a mouse or other cursor controldevice.

As illustrated in FIG. 11, in one embodiment, a user may select one ormore contacts 1105 (e.g., by holding down the CTRL key) and drag thecontacts over another contact 1106 in the contact list. Doing so willprovide the user the option to either merge the contacts (by selecting amerge button 1101) or to create a new household with the contacts (byselecting a “new household” button 1102).

Returning to FIG. 8, region 812 also includes a selectable option to“send cards” to the contacts selected in region 811. Selecting thisoption causes the stationery personalization engine 220 to begin thestationery design process using contacts identified by the stationeryservice contacts manager 212 (e.g., starting at step 309 in FIG. 3). Forexample, the user will be provided to option to select a stationerytemplate and enter a default message and/or a personalized message forcertain contacts. After the mail order is completed, the print module250 will transmit the stationery order to one of the internal printers251 or the external print service 252 and, after printing, thestationery order will be mailed to the selected contacts.

FIG. 12 illustrates one embodiment of a household details window whichis generated by, for example, double-clicking on the household withinthe contacts/households region 811. The window includes a first region1201 for listing the contacts within the household, with hyperlinkslinking to each of the contacts, a second region 1202 for displayingupcoming dates associated with the members of the household (as well aslinks 1203, 1204 for sending a card to each of the household members).In addition, a drop-down menu 1210 is provided which is automaticallypopulated with all of the different addresses associated with each ofthe household members. As shown at 1211, each entry in the drop-downmenu includes an address, an indication of the contact associated withthe address and a classification of the address type (e.g., work, home,etc). Links 1205-1207 are provided and dynamically updated for eachaddress to map the address 1205 (e.g., by linking to Google Maps); tovalidate the address 1206 (as described herein); and to send a card 1207(as described herein). In circumstances where a single address isassociated with all of the household members, the drop-down is notprovided as indicated at 1212.

FIG. 13 illustrates a window for displaying and manipulating contactdetails according to one embodiment of the invention. In one embodiment,the contact details window is generated in response to a userdouble-clicking on a contact in region 811. Multiple addresses areprovided for the contact and, for each address, a link is provided to“validate” the address 1301 and 1303. In one embodiment, to validate theaddress, the stationery service contacts manager 212 transmits a querycontaining the current address to an address validation service such asthose available from the US postal service (USPS). As illustrated inFIG. 14, in one embodiment, in response to selection of the “validate”link, the USPS either suggests corrections, as indicated by highlightedregions 1410 of selection box 1401 or validates the address, asindicated in selection box 1402.

In addition, a “send card” link 1302, 1304 is provided for each addressin the contact details window which initiates the process of selecting,designing and mailing stationery for the contacts associated with theaddress (e.g., as described above with respect to the “send card” buttonin region 812 of FIG. 8).

In addition, a “reminder” region 1315 is provided within the contactdetails window to provide reminders of upcoming dates such as birthdaysand anniversaries for contacts within the user's contacts list. Thelayout within the region comprises an indicator of the type of reminder(e.g., birthday), followed by the date of the reminder, followed by abrief description (e.g., 40 years old in 6 months). In one embodiment,certain contact data such as birthdays and anniversaries are identifiedby the stationery service contacts manager 212 as reminders. Inaddition, links are provided 1305,1307 to configure automated remindersfor the end user. For example, in one embodiment, upon setting areminder for a particular event, the stationery service contacts manager212 will transmit an email, instant message, or SMS message to remindthe end user of the event and/or will update the user's calendar withthe event. Various other types of reminders may be employed while stillcomplying with the underlying principles of the invention. In addition,for each reminder, a “send card” link 1302, 1304 is provided to initiatethe process described above to design and mail stationery to the contactassociated with the reminder.

In addition, a purchase history region 1320 is provided within thecontact details window to display the recent purchase history of the enduser. As illustrated, entries within the purchase history include imagesof the stationery designs 1309 and 1310 recently purchased by the enduser, along with an indication of the stationery type and message, andthe date that the stationery was purchased.

In addition to using the address validation techniques described above,one embodiment of the invention confirms current mailing addresses bytransmitting email messages to contacts. As illustrated in FIG. 15, inresponse to the selection of a particular contact, a window 1501 ispresented asking the end user if an email request should be sent. Adefault request message is used unless the user selects the checkbox foradding a personal message. If this checkbox is selected a window such as1502 appears to allow the user to enter a personal message. In oneembodiment, upon selection of “add a personal message” check box, themessage field is pre-populated with the default message, which may thenbe edited by the user.

A GUI for selecting multiple contacts is illustrated at 1503. In thisembodiment, contacts to receive the email request are selected viacheck-boxes. In one embodiment, certain contacts who have specificallyasked not to receive requests and/or for whom the user does not have anemail address are grayed out (thereby preventing selection via acheckbox). User selection of a “send request(s)” button from 1503 or a“send request” button within window 1501 will cause the confirmationrequest email to be sent to the selected contacts.

Both window 1501 (for a single request) and 1503 (for multiple requests)include a “view sample email” link to display a sample request email.The sample request email may be displayed in a new window, a new DHTMLlayer, or as an in-line DIV (division).

FIG. 16 a illustrates one embodiment of a confirmation request email tobe sent to contacts for whom no address currently exists in the user'saddress book. A hyperlink 1601 may be selected from within the emailmessage to open a Web page on the online stationery service 200 andenter the contact's address information. In one embodiment, the URL 1601is unique for each individual contact (e.g., containing a sequence ofcharacters uniquely identifying the contact to whom the email was sent).

FIG. 16 b illustrates one embodiment of a confirmation request email tobe sent to contacts for whom an address currently exists on the onlinestationery service 200. In this embodiment, the address which is storedon the online stationery service 200 is provided within the body of theemail 1602. A first hyperlink 1603 is provided to allow the contact toconfirm that the address information is correct and a second hyperlink1604 is provided to allow the contact to review and update the addressinformation and/or other personal information related to the contact.Selection of the first hyperlink 1603 generates a thank you messageindicating that the current address information has been confirmed andselection of the second hyperlink 1604 generates a series of data entryfields within a Web page for the user to update the address information.In one embodiment, the data fields are pre-populated with the existingaddress information.

In addition to providing reminders within the address book window shownin FIG. 8 and the contact details window shown in FIG. 13, oneembodiment of the stationery service contacts manager 212 willautomatically generate reminder emails for the end user. FIG. 17illustrates one such reminder email in which upcoming dates are listedin chronological order and, for each reminder, links are provided togenerate a subsequent reminder 1701-1702 (e.g., “remind me again in 3days”). In addition, for each reminder, a “send a card” link 1703-1704is provided which, when selected, initiates the stationery designprocess on the online stationery service 200 for the associatedcontact(s) (as described above). In addition, a secondary listing 1705is provided for those contacts for which the user has not specificallyrequested a reminder.

As mentioned above, in one embodiment of the invention, the onlinestationery service 200 will mail stationery to selected contacts onbehalf of the end user. FIGS. 18 a-b illustrate one embodiment of theinvention for selecting contacts for a stationery mailing. Two tabs1801-1802 are provided for specifying contacts. The first tab 1801generates a series of data entry fields 1805 for specifying a newcontact name and address (for someone not found in the user's addressbook). The second tab 1802 provides a list of selectable contacts 1804from the user's address book 210. A drop-down menu 1803 is provided toselect specific groups of contacts to be displayed within the list 1804.Individual contacts within the list 1804 are selected via check boxes,as illustrated. Regardless of whether the contacts are entered manuallyor selected from the address book, the user selects an “add” button 1807to add the contact information to the set of contacts for the stationeryorder. Contacts may be added to one of two different groups: a “mail forme” group 1810 which includes contacts to whom the online stationeryservice 200 will mail stationery directly; and a “address+ship to me”group 1811 which includes contacts for whom the online stationeryservice will print stationery/envelops and then mail the order to theend user. In FIGS. 18 a-b, the “mail for me group” is opened, therebydisplaying those contacts selected for a direct-mail option. The“address+ship to me” group may be displayed in a similar manner uponselection of a hyperlink 1811, as illustrated in FIG. 19. Specifically,in FIG. 19, two separate lists are compiled: a “mail for me” list 1901and a “address+ship to me” list 1902. Contacts may be added to each ofthe lists via two corresponding add buttons 1903 and 1904. In addition,contacts may be moved between the lists by highlighting a contact fromone of the lists and selecting a “move” button 1910.

Thus, within the GUI shown in FIGS. 18 a-b and 19, two different options1801-1802 are provided for selecting contacts and two different deliveryoptions (“mail for me” or “address+mail to me”) are provided fordelivering the stationery order.

As mentioned above, one embodiment of the invention allows the end userto specify a default message and/or to enter personalized messages foreach contact. FIG. 20 a illustrates one embodiment of a Web-based GUIfor specifying a default message. A greeting field 2001 is provided forentering a default greeting (e.g., “Hi,” “Hey,” “Dear,” etc) and aselectable option 2002 is provided to mail merge the greeting whenpossible (e.g., using contact information from the user's address book210). For mail merge, a drop down menu 2004 is provided to indicatewhether the first or last name of the contact should be used. “Firstname” is selected in FIG. 20 a, indicating that the greeting will beplaced in front of the first name of the stationery recipient (e.g.,“Hey Albert”). A message field 2005 is provided for entering a defaultmessage and a signature field 2006 is provided for entering a defaultsignature (e.g., “Best Regards, Tom”). In addition, options are providedfor entering a picture 2009; selecting a default font 2007; andselecting a default font size 2008.

FIGS. 20 b-c illustrate a GUI for reviewing the messages associated witheach of the contacts prior to printing and mailing. A separate contactentry 2011-2013 is provided for each contact. A “preview” linkassociated with each contact entry allows the end user to preview thecurrent greeting 2021, message 2022 and signature 2023 for each contact.The preview for contact 2011 is illustrated in FIG. 20 b and the previewfor contact 2013 is illustrated in FIG. 20 c. For each contact entry,radio selection options 2020 are provided to allow the user to selectthe “standard message,” a “custom message,” or “no message.” In theillustrated example, a standard greeting, message, and signature isselected for contact 2011 and a custom greeting, message, and signatureis provided for contact 2013. From the preview GUI, the user may editeach of the messages directly (e.g., by placing a cursor within dataentry fields 2040, 2041 or 2042). All of the contact entries may beopened and displayed via an “expand all” link 2010. Following the reviewof all greetings, messages and signatures, an approval region isprovided in which the user enters his/her initials 2017 to approve thefinal results.

A method for selecting stationery purchase options according to oneembodiment of the invention is illustrated in FIG. 21. In oneembodiment, the method is implemented within the context of the GUI andsystem described above.

At 2101, after selecting a set of recipients from the user's addressbook and selecting a personalized and/or default message for eachrecipient, a user selects stationery delivery options. In oneembodiment, the options include “mail all for me” 2102 indicating thatthe stationery service will be responsible for printing and mailing thestationery order directly to recipients; “ship all to me” 2103indicating that the stationery service will print and ship the orderdirectly to the end user; and “ship some for me and mail some for me”2104 indicating that the stationery service will be responsible forprinting and mailing a portion of the stationery order directly torecipients and will ship the remainder of the order to the end user.

At 2105, the user indicates to the stationery service whether returnaddresses are to be printed on envelopes. At 2106, the user indicateswhether mailing labels are to be used. At 2107, the stationery serviceidentifies the recipient and user addresses from its database and, at2108, generates a print job to print the stationery and envelopescontaining the addresses according to the user's specified preferences(e.g., using mailing labels, return addresses, etc). The stationeryorder (stationery and envelopes) is then printed.

At 2110, if the user selected “mail all to me” 2102, then the stationeryservice mails the stationery directly to the recipients. At 2111, if theuser selected “ship all to me” then the stationery service ships thestationery order directly to the end user. At 2112, if the user selected“ship some to me and mail some for me” then the stationery service mailssome of the stationery order to recipients on behalf of the user andships the remainder of the stationery order to the end user.

In one embodiment, the stationery order is generated and sent to aprinting service as described in the co-pending US patent applicationentitled SYSTEM AND METHOD FOR PROCESSING PERSONALIZED STATIONERYDESIGNS AND SELECTING FULFILLMENT ORDER SITES, Ser. No. ______, filedconcurrently with the present application and incorporated herein byreference.

Throughout the discussion above, various details have been omitted toavoid obscuring the pertinent aspects of the invention. For example, inan embodiment of the invention in which the user connects to the onlinestationery service 200 via a Web browser, various well known functionalmodules associated within the presentation and session management logic206 shown in FIG. 2 are executed to receive input, process the input anddynamically generate Web pages containing the results. The Web pagesdescribed herein may be formatted according to the well known HyperTextMarkup Language (“HTML”) or Extensible HTML (“XHTML”) formats, and mayprovide navigation to other Web pages via hypertext links. Oneembodiment utilizes Dynamic HTML (“DHTML”), a collection of technologiesused together to create interactive Web sites by using a combination ofa static markup language (e.g., HTML), a client-side scripting language(e.g., JavaScript), a presentation definition language (e.g., CSS), andthe Document Object Model (“DOM”). Of course, the underlying principlesof the invention are not limited to any particular set of protocols orstandards.

In one embodiment, the Web server used to implement the embodiments ofthe invention is a Ngnix, Apache web server running on Linux withsoftware programmed in PHP using a MySQL database.

Embodiments of the invention may include various steps as set forthabove. The steps may be embodied in machine-executable instructionswhich cause a general-purpose or special-purpose processor to performcertain steps. Alternatively, these steps may be performed by specifichardware components that contain hardwired logic for performing thesteps, or by any combination of programmed computer components andcustom hardware components.

Elements of the present invention may also be provided as amachine-readable medium for storing the machine-executable instructions.The machine-readable medium may include, but is not limited to, floppydiskettes, optical disks, CD-ROMs, and magneto-optical disks, ROMs,RAMs, EPROMs, EEPROMs, magnetic or optical cards, propagation media orother type of media/machine-readable medium suitable for storingelectronic instructions. For example, the present invention may bedownloaded as a computer program which may be transferred from a remotecomputer (e.g., a server) to a requesting computer (e.g., a client) byway of data signals embodied in a carrier wave or other propagationmedium via a communication link (e.g., a modem or network connection).

Throughout the foregoing description, for the purposes of explanation,numerous specific details were set forth in order to provide a thoroughunderstanding of the invention. It will be apparent, however, to oneskilled in the art that the invention may be practiced without some ofthese specific details. For example, it will be readily apparent tothose of skill in the art that the functional modules such as wizardsand other logic may be implemented as software, hardware or anycombination thereof. Accordingly, the scope and spirit of the inventionshould be judged in terms of the claims which follow.

1. A network-based computer system for providing an online stationeryservice: a stationery service contacts database configured to storecontacts data associated with one or more users; a stationerypersonalization engine configured to provide a user with a set ofselectable stationery templates, to receive a selection from the user ofa particular one of the stationery templates, and to generatepersonalized stationery based on the particular one of the stationerytemplates; one or more computer servers in communication with thestationery service contacts database and configured to enable display ofa graphical user interface (GUI) on a user device, wherein the one ormore computer servers are configured to display on the user device: afirst region comprising a list of contacts from the stationery servicecontacts database, wherein the list of contacts are selectable by theuser; a second region comprising a series of data fields for entering anew contact via the user device; a third region comprising a list ofcontacts to whom the online stationery service is to mail stationerydirectly on behalf of the user, the contacts within the third regionselected from the first region or entered in the second region; and afourth region comprising a list of contacts for whom the onlinestationery service is to print and mail stationery for the user, thecontacts within the fourth region selected from the first region orentered in the second region; and a print module configured to generatea print job to print the personalized stationery and envelopescontaining the address information for the user-selected contacts. 2.The network-based computer system of claim 1, wherein the GUI comprisesa Web page rendered within a browser on the user device.
 3. Thenetwork-based computer system of claim 1, wherein the one or morecomputer servers are configured to further display on the user device: afirst tab visually coupled to the first region; and a second tabvisually coupled to the second region, wherein the first region isselectable by the user by selecting the first tab and the second regionis selectable by the user by selecting the second tab.
 4. Thenetwork-based computer system of claim 3, wherein the first region andthe second region occupy overlapping area within the GUI, and whereinthe first region and the second region are alternatively displayed inresponse to user's selection of the first tab or the second tab.
 5. Thenetwork-based computer system of claim 1, wherein the one or morecomputer servers are configured to display on the user device a checkbox associated with and adjacent to each contact in the contact list inthe first region, wherein the user may select a plurality of contactsfrom the list by selecting the corresponding check boxes.
 6. Thenetwork-based computer system of claim 1, wherein the third and fourthregions each comprises an “add” graphical element associated with addingusers from the contacts list in the first region or a contact enteredwithin the data fields of the second region.
 7. The network-basedcomputer system of claim 6, wherein the one or more computer servers areconfigured to display a “move” graphical element to move a selectedcontact between the third region and the fourth region.
 8. Thenetwork-based computer system of claim 1, further comprising: a contactsimport module configured to import at least a portion of the contactsdata from the user device or an online contacts database.
 9. Thenetwork-based computer system of claim 8, wherein the online contactsdatabase comprises an online email service or a social network.
 10. Thenetwork-based computer system of claim 8, wherein the contacts importmodule is configured to resolve conflicts in the portion of the contactsdata and other portion of the contacts data stored in the stationeryservice contacts database.
 11. The network-based computer system ofclaim 8, wherein the contacts import module is configured to merge theportion of the contacts data into the contacts data stored in thestationery service contacts database.
 12. A network-based computersystem for providing an online stationery service: a stationery servicecontacts database configured to store contacts data associated with oneor more users; a contacts manager module configured to manage contactsdata within a stationery service contacts database in response to userinput; a stationery personalization engine configured to provide a userwith a set of selectable stationery templates, to receive a selectionfrom the user of a particular one of the stationery templates, and togenerate personalized stationery based on the particular one of thestationery templates, wherein the stationery personalization engine isconfigured to allow the user to enter a default message to be used onstationery for a first set of contacts and one or more personalizedmessages to be used on stationery for a second set of contacts; apresentation module configured to receive a list of contacts from thecontacts manager module to whom the personalized stationery is to bemailed and to display the list of contacts on a graphical user interface(GUI), wherein the presentation module configured to allow the user toselect a default message or a personalized message for each contact inthe list at the GUI, wherein the GUI further comprises a review list ofall contacts selected for a stationery mailing and data entry fieldsshowing a personalized message or a default message for each contact inthe review list, wherein the GUI further comprises a personalizedsignature or a default signature for each contact in the review list,wherein the stationery personalization engine is configured to receive aselection from the user as to whether the stationery is to be maileddirectly to the contact or shipped to the user; and a print moduleconfigured to generate a print job to print the personalized stationeryand envelopes containing the address information for the user-selectedcontacts.
 13. The network-based computer system of claim 12, wherein thestationery personalization engine is configured to allow the user toenter the personalized message for the corresponding contact at the GUI.14. The network-based computer system of claim 12, wherein thestationery personalization engine is configured to allow the user toenter a greeting and to select a first or last name of a contact to beused on the stationery at the GUI.
 15. The network-based computer systemof claim 14, wherein the GUI further comprises a signature data entryfield for entering a signature for the stationery.
 16. The network-basedcomputer system of claim 12, wherein the review list includes, for eachcontact, a set of selectable radio buttons, a first radio buttonchoosing a default message, a second radio button choosing a custommessage and a third radio button choosing no message for the stationeryto be sent to the selected contact.
 17. The network-based computersystem of claim 16, wherein the GUI comprises an edit link associatedwith an adjacent to the default message radio button and the custommessage radio button, the edit link generating a GUI for editing eitherthe default message or the custom message.
 18. The network-basedcomputer system of claim 12, wherein the presentation module configuredto display a preview link in association with each contact in the reviewlist at the GUI, and to generate a preview image of a stationery productto be sent to the associated contact when the preview link is selectedby the user.
 19. The network-based computer system of claim 12, furthercomprising: a contacts import module configured to import at least aportion of the contacts data from the user device or an online contactsdatabase, wherein the online contacts database comprises an online emailservice or a social network.
 20. The network-based computer system ofclaim 19, wherein the contacts import module is configured to resolveconflicts in the portion of the contacts data and other portion of thecontacts data stored in the stationery service contacts database,wherein the contacts import module is configured to merge the portion ofthe contacts data into the contacts data stored in the stationeryservice contacts database.